<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // Promise.prototype.then()方法
        // Promise.prototype.then方法: (onFulfilled, onRejected) => {}
        // (1) onFulfilled函数: 成功的回调函数  (value) => {}
        // (2) onRejected函数: 失败的回调函数 (reason) => {}
        // 说明: 指定用于得到成功value的成功回调和用于得到失败reason的失败回调
        //     返回一个新的promise对象

        const p = new  Promise((resolve, reject) => {
            resolve("ok");
            //reject("error");
        });
        
        console.log(p);

        // p.then(value => {
        //     console.log("成功", value);
        // }, reason => {
        //     console.log("失败", reason);
        // });

        // 其中then方法执行完毕后还会返回一个新的promise对象
        // const p2 = p.then(
        //     value => { console.log(value); return "成功";},
        //     reason => { console.log(reason); }
        // );

        // console.log(p2);// 新Promise对象状态为fulfilled，内容为“成功”
        // then方法执行完毕后会继续返回一个Promise，默认PromiseState状态维持原来的成功
        //   其中PromiseResult值使用其返回结果
        p.then(v => {  
            console.log("成功1：",v); // 成功1：ok
            //return "Hello";
        }).then(v => {
            console.log("成功2：",v); // 成功2：Hello  若上面没有返回则获取的是undefined
            return "World";
        }).then(v => {
            console.log("成功3：",v);
        });

    </script>
</body>
</html>